import { createApp } from 'vue';
import 'normalize.css';
import { Lazyload } from 'vant';

import { i18n } from '/@/i18n';
import store from './store/index';
import router from './router/index';

// 支持挂载全局属性
import { initGlobalProperties } from './utils/globalProperties/index';

import App from './App.vue';

// 全局css
import './assets/iconfont/iconfont.css';
import './styles/app.css';
import './styles/base.css';

// 设置默认属性
Snackbar.setDefaultOptions({
  position: 'bottom',
  duration: 2.4 * 1000,
});

const app = createApp(App);
initGlobalProperties(app);
// import VueDOMPurifyHTML from 'vue-dompurify-html';
// app.use(VueDOMPurifyHTML);
// 注册自定义指令 v-prevent-reclick
app.directive('preventreclick', {
  beforeMount(el, binding) {
    el.disabled = false; // 初始化时启用按钮
    el.addEventListener('click', () => {
      el.disabled = true; // 点击后禁用按钮
      setTimeout(() => {
        el.disabled = false; // 在指定的时间后重新启用按钮
      }, binding.value || 3000); // 使用 binding.value 来设置等待时间，默认为 1000 毫秒
    });
  },
  unmounted(el) {
    // 组件卸载时移除事件监听器
    el.removeEventListener('click', () => {});
  },
});
// 国际化
app.use(i18n);

// vant 的图片懒加载，需要全局引入组件
app.use(Lazyload);
// 状态管理
app.use(store);

// 路由管理
app.use(router);

app.mount('#app');
